Planning is essential to almost any endeavor. In a network comprising a number of elements, proper planning can optimize the operation of the elements, both on an individual basis and a collective (i.e, network) basis.
In the past, the process for deriving a suitable network plan could be painstakingly difficult. In most cases, certain restrictions, limitations, or other constraints on the operation or function of a network had to be taken into account. When a version of a network plan violated one or more of such constraints, that version was generally modified or changed in order to eliminate or resolve the violations. However, if the elements within a network interacted, any resolution taken to remedy the violation of one constraint could cause another constraint to be violated. Because it was difficult to determine how a specific change would impact or effect a version of a network plan, a network plan often had to be modified a great number of times before a suitable version was derived.
Furthermore, when a network is operated, "bottlenecks" may arise such that optimized operation is not realized. More specifically, a bottleneck can be any part of a network that hinders or impedes other parts of the network. Although it is desirable to identify these bottlenecks, previous systems and techniques were not able to do so in a satisfactory manner.